package com.example.saiaadmin.entry;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * 代码生成业务表
 *
 *  @author  Vagrant
 * @since 2025/01/13
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EbToolGenerateTables implements Serializable {
    @Serial
    private static final long serialVersionUID = -961247641052232916L;
    /**
     * 主键
     */
    private Integer id;
    /**
     * 表名称
     */
    private String tableName;
    /**
     * 表注释
     */
    private String tableComment;
    /**
     * stub类型
     */
    private String stub;
    /**
     * 模板名称
     */
    private String template;
    /**
     * 命名空间
     */
    private String namespace;
    /**
     * 控制器包名
     */
    private String packageName;
    /**
     * 业务名称
     */
    private String businessName;
    /**
     * 类名称
     */
    private String className;
    /**
     * 生成菜单名
     */
    private String menuName;
    /**
     * 所属菜单
     */
    private Integer belongMenuId;
    /**
     * 生成类型,single 单表CRUD,tree 树表CRUD,parent_sub父子表CRUD
     */
    private String tplCategory;
    /**
     * 1 压缩包下载 2 生成到模块
     */
    private Integer generateType;
    /**
     * 前端根目录
     */
    private String generatePath;
    /**
     * 1 软删除 2 非软删除
     */
    private Integer generateModel;
    /**
     * 生成菜单列表
     */
    private String generateMenus;
    /**
     * 是否构建菜单
     */
    private Integer buildMenu;
    /**
     * 组件显示方式
     */
    private Integer componentType;
    /**
     * 其他业务选项
     */
    private String options;
    /**
     * 表单宽度
     */
    private Integer formWidth;
    /**
     * 是否全屏
     */
    private Integer isFull;
    /**
     * 备注
     */
    private String remark;
    /**
     * 数据源
     */
    private String source;
    /**
     * 创建者
     */
    private Integer createdBy;
    /**
     * 更新者
     */
    private Integer updatedBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 删除时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deleteTime;
}